[INFO] fetching crate flo 0.1.0...
[INFO] fixing flo-0.1.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate flo 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate flo 0.1.0
[INFO] finished tweaking crates.io crate flo 0.1.0
[INFO] tweaked toml for crates.io crate flo 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate flo 0.1.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 44 packages to latest compatible versions
[INFO] [stderr]       Adding desync v0.1.2 (available: v0.9.0)
[INFO] [stderr]       Adding flo_binding v0.1.2 (available: v3.0.0)
[INFO] [stderr]       Adding flo_canvas v0.1.0 (available: v0.3.1)
[INFO] [stderr]       Adding flo_curves v0.1.0 (available: v0.8.0)
[INFO] [stderr]       Adding futures v0.1.31 (available: v0.3.32)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `flo` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641
[INFO] running `Command { std: "docker" "start" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `flo` (manifest) generated 1 warning
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]     Checking rawpointer v0.1.0
[INFO] [stderr]     Checking rust-hsluv v0.1.4
[INFO] [stderr]     Checking traitobject v0.1.1
[INFO] [stderr]     Checking inflate v0.3.4
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking modifier v0.1.0
[INFO] [stderr]     Checking flo_float_encoder v0.1.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking desync v0.1.2
[INFO] [stderr]     Checking desync v0.4.1
[INFO] [stderr]     Checking unsafe-any v0.4.2
[INFO] [stderr]     Checking typemap v0.3.3
[INFO] [stderr]     Checking flo_binding v0.1.2
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking num v0.1.43
[INFO] [stderr]     Checking png v0.11.0
[INFO] [stderr]     Checking rulinalg v0.4.2
[INFO] [stderr]     Checking flo_curves v0.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking flo_canvas v0.1.0
[INFO] [stderr]     Checking flo_animation v0.1.0
[INFO] [stderr]     Checking flo_ui v0.1.0
[INFO] [stderr]     Checking flo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed src/editor/menu_controller.rs (3 fixes)
[INFO] [stderr]        Fixed src/menu/ink.rs (6 fixes)
[INFO] [stderr]        Fixed src/color/generate_images.rs (1 fix)
[INFO] [stderr]        Fixed src/model/frame.rs (2 fixes)
[INFO] [stderr]        Fixed src/menu/adjust.rs (2 fixes)
[INFO] [stderr]        Fixed src/model/tools.rs (3 fixes)
[INFO] [stderr]        Fixed src/standard_tools/pan.rs (1 fix)
[INFO] [stderr]        Fixed src/model/timeline.rs (3 fixes)
[INFO] [stderr]        Fixed src/tools/brush_preview_action.rs (1 fix)
[INFO] [stderr]        Fixed src/model/selection.rs (2 fixes)
[INFO] [stderr]        Fixed src/editor/toolbox_controller.rs (4 fixes)
[INFO] [stderr]        Fixed src/tools/convert.rs (2 fixes)
[INFO] [stderr]        Fixed src/standard_tools/ink.rs (4 fixes)
[INFO] [stderr]        Fixed src/standard_tools/pencil.rs (1 fix)
[INFO] [stderr]        Fixed src/menu/empty.rs (2 fixes)
[INFO] [stderr]        Fixed src/color/color_picker_controller.rs (3 fixes)
[INFO] [stderr]        Fixed src/model/layer.rs (2 fixes)
[INFO] [stderr]        Fixed src/standard_tools/adjust.rs (2 fixes)
[INFO] [stderr]        Fixed src/tools/tool_runner.rs (1 fix)
[INFO] [stderr]        Fixed src/menu/eraser.rs (6 fixes)
[INFO] [stderr]        Fixed src/editor/canvas_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/tools/tool_input.rs (1 fix)
[INFO] [stderr]        Fixed src/standard_tools/tool_sets.rs (1 fix)
[INFO] [stderr]        Fixed src/model/animation.rs (3 fixes)
[INFO] [stderr]        Fixed src/menu/controls.rs (1 fix)
[INFO] [stderr]        Fixed src/standard_tools/eraser.rs (3 fixes)
[INFO] [stderr]        Fixed src/model/mod.rs (2 fixes)
[INFO] [stderr]        Fixed src/animation_canvas/canvas_tools.rs (5 fixes)
[INFO] [stderr]        Fixed src/editor/mod.rs (8 fixes)
[INFO] [stderr]        Fixed src/menu/select.rs (2 fixes)
[INFO] [stderr]        Fixed src/animation_canvas/canvas_renderer.rs (4 fixes)
[INFO] [stderr]        Fixed src/tools/generic_tool.rs (3 fixes)
[INFO] [stderr]        Fixed src/color/images.rs (2 fixes)
[INFO] [stderr]        Fixed src/color/hsluv_picker_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/tools/tool_trait.rs (2 fixes)
[INFO] [stderr]        Fixed src/tools/tool_action.rs (1 fix)
[INFO] [stderr]        Fixed src/standard_tools/select.rs (4 fixes)
[INFO] [stderr]        Fixed src/tools/tool_set.rs (1 fix)
[INFO] [stderr]        Fixed src/tools/overlay_action.rs (1 fix)
[INFO] [stderr]        Fixed src/editor/timeline_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/style.rs (1 fix)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.51s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: typemap v0.3.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] [stderr] crater-edition-check: flo v0.1.0 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking flo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0659]: `desync` is ambiguous
[INFO] [stdout]  --> src/editor/canvas_controller.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use desync::*;
[INFO] [stdout]   |     ^^^^^^ ambiguous name
[INFO] [stdout]   |
[INFO] [stdout]   = note: ambiguous because of a conflict between a name from a glob import and an outer scope during import or macro resolution
[INFO] [stdout] note: `desync` could refer to the module imported here
[INFO] [stdout]  --> src/editor/canvas_controller.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use desync::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   = help: consider adding an explicit import of `desync` to disambiguate
[INFO] [stdout]   = help: or use `self::desync` to refer to this module unambiguously
[INFO] [stdout] note: `desync` could also refer to the crate imported here
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | extern crate desync;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = help: use `::desync` to refer to this crate unambiguously
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::keyframe::*`
[INFO] [stdout]   --> src/model/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use self::keyframe::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::animation::*`
[INFO] [stdout]   --> src/model/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use self::animation::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/menu_controller.rs:19:51
[INFO] [stdout]    |
[INFO] [stdout] 19 |     tool_controllers:   Mutex<HashMap<String, Arc<Controller>>>,
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     tool_controllers:   Mutex<HashMap<String, Arc<dyn Controller>>>,
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/mod.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |     subcontrollers: HashMap<SubController, Arc<Controller>>
[INFO] [stdout]    |                                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     subcontrollers: HashMap<SubController, Arc<dyn Controller>>
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/animation_canvas/canvas_renderer.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 |     layer_frame:        Arc<Frame>,
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     layer_frame:        Arc<dyn Frame>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type FloTool<Anim> = Tool<Anim, ToolData=GenericToolData, Model=GenericToolModel>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type FloTool<Anim> = dyn Tool<Anim, ToolData=GenericToolData, Model=GenericToolModel>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:45:38
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct GenericToolData(Mutex<Box<Any+Send>>);
[INFO] [stdout]    |                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct GenericToolData(Mutex<Box<dyn Any+Send>>);
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenericToolModel(Mutex<Box<Any+Send>>);
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenericToolModel(Mutex<Box<dyn Any+Send>>);
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     model_actions: Option<Spawn<Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send>>>
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     model_actions: Option<Spawn<Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send>>>
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/select.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |     frame: BindRef<Option<Arc<Frame>>>,
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     frame: BindRef<Option<Arc<dyn Frame>>>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/select.rs:50:23
[INFO] [stdout]    |
[INFO] [stdout] 50 |     frame: Option<Arc<Frame>>,
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     frame: Option<Arc<dyn Frame>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:26:36
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>,
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/frame.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub frame: BindRef<Option<Arc<Frame>>>,
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub frame: BindRef<Option<Arc<dyn Frame>>>,
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:51:112
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:58:100
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...>, _tool_model: &Self::Model) -> Box<Stream<Item=ToolAction<Self::ToolData>, Error=()>+Send> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn actions_for_model(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Box<dyn Stream<Item=ToolAction<Self::ToolData>, Error=()>+Send> {
[INFO] [stdout]    |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:65:86
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<'a+Iterator<Item=ToolInput<Self::ToolData>>>) -...
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<Self::ToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:65:139
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...<Item=ToolInput<Self::ToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<'a+Iterator<Item=ToolInput<Self::ToolData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/menu_controller.rs:97:57
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:72
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...imelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<dyn Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:92
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...neModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<dyn Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:100
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+S...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut dyn GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:300:43
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<dyn Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:300:51
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut dyn GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:356:38
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn draw_frame_indicator(gc: &mut GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn draw_frame_indicator(gc: &mut dyn GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:376:43
[INFO] [stdout]     |
[INFO] [stdout] 376 |     fn draw_frame_indicator_line(gc: &mut GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 376 |     fn draw_frame_indicator_line(gc: &mut dyn GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:486:43
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/toolbox_controller.rs:61:45
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_ui(tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>, viewmodel: Arc<DynamicViewModel>, images: Arc<ResourceManager<Image>>)...
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_ui(tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>, viewmodel: Arc<DynamicViewModel>, images: Arc<ResourceManager<Image>>) -> BindRef<Control> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/toolbox_controller.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:114:99
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn relay_drawing_for_overlay<DrawIter: Iterator<Item=Draw>>(&mut self, overlay: u32, gc: &mut GraphicsPrimitives, drawing: Draw...
[INFO] [stdout]     |                                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn relay_drawing_for_overlay<DrawIter: Iterator<Item=Draw>>(&mut self, overlay: u32, gc: &mut dyn GraphicsPrimitives, drawing: DrawIter) {
[INFO] [stdout]     |                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:71:87
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<ToolData: Send+'static, Model: Send+Sync+'static, Anim: Animation> PartialEq for Tool<Anim, ToolData=ToolData, Model=Model> {
[INFO] [stdout]    |                                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<ToolData: Send+'static, Model: Send+Sync+'static, Anim: Animation> PartialEq for dyn Tool<Anim, ToolData=ToolData, Model=Model> {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn eq(&self, other: &Tool<Anim, ToolData=ToolData, Model=Model>) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn eq(&self, other: &dyn Tool<Anim, ToolData=ToolData, Model=Model>) -> bool {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_set.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<Anim: Animation> PartialEq for ToolSet<Anim> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<Anim: Animation> PartialEq for dyn ToolSet<Anim> {
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_set.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &ToolSet<Anim>) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &dyn ToolSet<Anim>) -> bool {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:144:115
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn create_menu_controller(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn create_menu_controller(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:150:103
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...ol_model: &GenericToolModel) -> Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:160:87
[INFO] [stdout]     |
[INFO] [stdout] 160 | ... Option<Arc<GenericToolData>>, input: Box<'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Gene...
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<GenericToolData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:160:141
[INFO] [stdout]     |
[INFO] [stdout] 160 | ...tem=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<GenericToolData>>, input: Box<'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:77:44
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn model_actions(&mut self) -> Box<Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn model_actions(&mut self) -> Box<dyn Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:97:110
[INFO] [stdout]    |
[INFO] [stdout] 97 | ...ToolData>>>(&mut self, input: Iter) -> Box<Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn actions_for_input<Iter: Iterator<Item=ToolInput<GenericToolData>>>(&mut self, input: Iter) -> Box<dyn Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:271:112
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &SelectModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &SelectModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:278:98
[INFO] [stdout]     |
[INFO] [stdout] 278 | ...im>>, tool_model: &SelectModel) -> Box<Stream<Item=ToolAction<SelectData>, Error=()>+Send> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &SelectModel) -> Box<dyn Stream<Item=ToolAction<SelectData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:342:79
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<Iter...
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:342:128
[INFO] [stdout]     |
[INFO] [stdout] 342 | ...terator<Item=ToolInput<SelectData>>>) -> Box<Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<dyn Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:34:103
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &()) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &()) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:38:76
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:38:117
[INFO] [stdout]    |
[INFO] [stdout] 38 | ...t: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pan.rs:32:76
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=To...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pan.rs:32:117
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...put: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pencil.rs:32:76
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=To...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pencil.rs:32:117
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...put: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:113:108
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:120:95
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...l<Anim>>, tool_model: &InkModel) -> Box<Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Box<dyn Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:141:80
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Ite...
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:141:126
[INFO] [stdout]     |
[INFO] [stdout] 141 | ...a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:57:108
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:61:95
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...el<Anim>>, tool_model: &InkModel) -> Box<Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Box<dyn Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:79:79
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Itera...
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:79:125
[INFO] [stdout]    |
[INFO] [stdout] 79 | ...'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:73:148
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...: Binding<(PaintDevice, i32)>, tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>) -> BindRef<Option<Arc<FloTool<Anim>>>> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn effective_tool(selected_tool: Binding<Option<Arc<FloTool<Anim>>>>, current_pointer: Binding<(PaintDevice, i32)>, tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>) -> BindRef<Option<Arc<FloTool<Anim>>>> {
[INFO] [stdout]    |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:40:76
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_layer_with_id<'a>(&'a self, layer_id: u64) -> Option<Reader<'a, Layer>> {
[INFO] [stdout]    |                                                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_layer_with_id<'a>(&'a self, layer_id: u64) -> Option<Reader<'a, dyn Layer>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:47:44
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_log<'a>(&'a self) -> Reader<'a, EditLog<AnimationEdit>> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_log<'a>(&'a self) -> Reader<'a, dyn EditLog<AnimationEdit>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn edit<'a>(&'a self) -> Editor<'a, PendingEditLog<AnimationEdit>> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn edit<'a>(&'a self) -> Editor<'a, dyn PendingEditLog<AnimationEdit>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/model/animation.rs:102:62
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn edit_layer<'a>(&'a self, layer_id: u64) -> Editor<'a, PendingEditLog<LayerEdit>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn edit_layer<'a>(&'a self, layer_id: u64) -> Editor<'a, dyn PendingEditLog<LayerEdit>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/mod.rs:154:57
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/ink.rs:317:43
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/ink.rs:321:57
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `desync` is ambiguous
[INFO] [stdout]  --> src/editor/canvas_controller.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use desync::*;
[INFO] [stdout]   |     ^^^^^^ ambiguous name
[INFO] [stdout]   |
[INFO] [stdout]   = note: ambiguous because of a conflict between a name from a glob import and an outer scope during import or macro resolution
[INFO] [stdout] note: `desync` could refer to the module imported here
[INFO] [stdout]  --> src/editor/canvas_controller.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use desync::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   = help: consider adding an explicit import of `desync` to disambiguate
[INFO] [stdout]   = help: or use `self::desync` to refer to this module unambiguously
[INFO] [stdout] note: `desync` could also refer to the crate imported here
[INFO] [stdout]  --> src/lib.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | extern crate desync;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = help: use `::desync` to refer to this crate unambiguously
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/eraser.rs:227:43
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/color/color_picker_controller.rs:49:57
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/color/hsluv_picker_controller.rs:251:43
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/color/hsluv_picker_controller.rs:255:58
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn get_subcontroller(&self, _id: &str) -> Option<Arc<Controller>> { None }
[INFO] [stdout]     |                                                          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn get_subcontroller(&self, _id: &str) -> Option<Arc<dyn Controller>> { None }
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/tools/generic_tool.rs:269:81
[INFO] [stdout]     |
[INFO] [stdout] 269 |         let model           = generic_tool.create_model(Arc::clone(&flo_model));;
[INFO] [stdout]     |                                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::keyframe::*`
[INFO] [stdout]   --> src/model/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use self::keyframe::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::animation::*`
[INFO] [stdout]   --> src/model/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use self::animation::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn draw_background(&mut self, gc: &mut GraphicsPrimitives, (width, height): (f64, f64)) {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn draw_background(&mut self, gc: &mut dyn GraphicsPrimitives, (width, height): (f64, f64)) {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:356:47
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn annotate_layer<DrawFn: FnOnce(&mut GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, dra...
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn annotate_layer<DrawFn: FnOnce(&mut dyn GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, draw_annotations: DrawFn) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:400:48
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn commit_to_layer<DrawFn: FnOnce(&mut GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, co...
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn commit_to_layer<DrawFn: FnOnce(&mut dyn GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, commit_drawing: DrawFn) {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/layer.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new<'a>(layer: &Reader<'a, Layer>) -> LayerModel {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new<'a>(layer: &Reader<'a, dyn Layer>) -> LayerModel {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/menu_controller.rs:19:51
[INFO] [stdout]    |
[INFO] [stdout] 19 |     tool_controllers:   Mutex<HashMap<String, Arc<Controller>>>,
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     tool_controllers:   Mutex<HashMap<String, Arc<dyn Controller>>>,
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/mod.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 |     subcontrollers: HashMap<SubController, Arc<Controller>>
[INFO] [stdout]    |                                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     subcontrollers: HashMap<SubController, Arc<dyn Controller>>
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/animation_canvas/canvas_renderer.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 |     layer_frame:        Arc<Frame>,
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     layer_frame:        Arc<dyn Frame>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type FloTool<Anim> = Tool<Anim, ToolData=GenericToolData, Model=GenericToolModel>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type FloTool<Anim> = dyn Tool<Anim, ToolData=GenericToolData, Model=GenericToolModel>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:45:38
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct GenericToolData(Mutex<Box<Any+Send>>);
[INFO] [stdout]    |                                      ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct GenericToolData(Mutex<Box<dyn Any+Send>>);
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/generic_tool.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenericToolModel(Mutex<Box<Any+Send>>);
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct GenericToolModel(Mutex<Box<dyn Any+Send>>);
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:30:37
[INFO] [stdout]    |
[INFO] [stdout] 30 |     model_actions: Option<Spawn<Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send>>>
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     model_actions: Option<Spawn<Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send>>>
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/select.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |     frame: BindRef<Option<Arc<Frame>>>,
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     frame: BindRef<Option<Arc<dyn Frame>>>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/select.rs:50:23
[INFO] [stdout]    |
[INFO] [stdout] 50 |     frame: Option<Arc<Frame>>,
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |     frame: Option<Arc<dyn Frame>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:26:36
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>,
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>,
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/frame.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub frame: BindRef<Option<Arc<Frame>>>,
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub frame: BindRef<Option<Arc<dyn Frame>>>,
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:51:112
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:58:100
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...>, _tool_model: &Self::Model) -> Box<Stream<Item=ToolAction<Self::ToolData>, Error=()>+Send> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn actions_for_model(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &Self::Model) -> Box<dyn Stream<Item=ToolAction<Self::ToolData>, Error=()>+Send> {
[INFO] [stdout]    |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:65:86
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<'a+Iterator<Item=ToolInput<Self::ToolData>>>) -...
[INFO] [stdout]    |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<Self::ToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:65:139
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...<Item=ToolInput<Self::ToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<Self::ToolData>>, input: Box<'a+Iterator<Item=ToolInput<Self::ToolData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<Self::ToolData>>>;
[INFO] [stdout]    |                                                                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/menu_controller.rs:97:57
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:72
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...imelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<dyn Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:92
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...neModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<dyn Fn(&mut GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:214:100
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+S...
[INFO] [stdout]     |                                                                                                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn create_draw_keyframes_fn(timeline: &TimelineModel<Anim>) -> Box<Fn(f32, f32) -> Box<Fn(&mut dyn GraphicsPrimitives) -> ()+Send+Sync>+Send+Sync> {
[INFO] [stdout]     |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:300:43
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<dyn Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:300:51
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn draw_scale(x: f32, _y: f32) -> Box<Fn(&mut dyn GraphicsPrimitives) -> ()+Send+Sync> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:356:38
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn draw_frame_indicator(gc: &mut GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |     fn draw_frame_indicator(gc: &mut dyn GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:376:43
[INFO] [stdout]     |
[INFO] [stdout] 376 |     fn draw_frame_indicator_line(gc: &mut GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 376 |     fn draw_frame_indicator_line(gc: &mut dyn GraphicsPrimitives) -> () {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/timeline_controller.rs:486:43
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 486 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/toolbox_controller.rs:61:45
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_ui(tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>, viewmodel: Arc<DynamicViewModel>, images: Arc<ResourceManager<Image>>)...
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn create_ui(tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>, viewmodel: Arc<DynamicViewModel>, images: Arc<ResourceManager<Image>>) -> BindRef<Control> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/toolbox_controller.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:114:99
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn relay_drawing_for_overlay<DrawIter: Iterator<Item=Draw>>(&mut self, overlay: u32, gc: &mut GraphicsPrimitives, drawing: Draw...
[INFO] [stdout]     |                                                                                                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn relay_drawing_for_overlay<DrawIter: Iterator<Item=Draw>>(&mut self, overlay: u32, gc: &mut dyn GraphicsPrimitives, drawing: DrawIter) {
[INFO] [stdout]     |                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:71:87
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<ToolData: Send+'static, Model: Send+Sync+'static, Anim: Animation> PartialEq for Tool<Anim, ToolData=ToolData, Model=Model> {
[INFO] [stdout]    |                                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl<ToolData: Send+'static, Model: Send+Sync+'static, Anim: Animation> PartialEq for dyn Tool<Anim, ToolData=ToolData, Model=Model> {
[INFO] [stdout]    |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_trait.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn eq(&self, other: &Tool<Anim, ToolData=ToolData, Model=Model>) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn eq(&self, other: &dyn Tool<Anim, ToolData=ToolData, Model=Model>) -> bool {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_set.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<Anim: Animation> PartialEq for ToolSet<Anim> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<Anim: Animation> PartialEq for dyn ToolSet<Anim> {
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_set.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &ToolSet<Anim>) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn eq(&self, other: &dyn ToolSet<Anim>) -> bool {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:144:115
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn create_menu_controller(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn create_menu_controller(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:150:103
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...ol_model: &GenericToolModel) -> Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &GenericToolModel) -> Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:160:87
[INFO] [stdout]     |
[INFO] [stdout] 160 | ... Option<Arc<GenericToolData>>, input: Box<'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<Gene...
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<GenericToolData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:160:141
[INFO] [stdout]     |
[INFO] [stdout] 160 | ...tem=ToolInput<GenericToolData>>>) -> Box<'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<GenericToolData>>, input: Box<'a+Iterator<Item=ToolInput<GenericToolData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]     |                                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:77:44
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn model_actions(&mut self) -> Box<Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn model_actions(&mut self) -> Box<dyn Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/tools/tool_runner.rs:97:110
[INFO] [stdout]    |
[INFO] [stdout] 97 | ...ToolData>>>(&mut self, input: Iter) -> Box<Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn actions_for_input<Iter: Iterator<Item=ToolInput<GenericToolData>>>(&mut self, input: Iter) -> Box<dyn Iterator<Item=ToolAction<GenericToolData>>> {
[INFO] [stdout]    |                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:271:112
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &SelectModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &SelectModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:278:98
[INFO] [stdout]     |
[INFO] [stdout] 278 | ...im>>, tool_model: &SelectModel) -> Box<Stream<Item=ToolAction<SelectData>, Error=()>+Send> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &SelectModel) -> Box<dyn Stream<Item=ToolAction<SelectData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:342:79
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<Iter...
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/select.rs:342:128
[INFO] [stdout]     |
[INFO] [stdout] 342 | ...terator<Item=ToolInput<SelectData>>>) -> Box<Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 342 |     fn actions_for_input<'a>(&self, data: Option<Arc<SelectData>>, input: Box<'a+Iterator<Item=ToolInput<SelectData>>>) -> Box<dyn Iterator<Item=ToolAction<SelectData>>> {
[INFO] [stdout]     |                                                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:34:103
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &()) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, _tool_model: &()) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:38:76
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/adjust.rs:38:117
[INFO] [stdout]    |
[INFO] [stdout] 38 | ...t: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pan.rs:32:76
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=To...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pan.rs:32:117
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...put: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pencil.rs:32:76
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=To...
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<dyn 'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/pencil.rs:32:117
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...put: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<()>>, _input: Box<'a+Iterator<Item=ToolInput<()>>>) -> Box<dyn Iterator<Item=ToolAction<()>>> {
[INFO] [stdout]    |                                                                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:113:108
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                                                                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:120:95
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...l<Anim>>, tool_model: &InkModel) -> Box<Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Box<dyn Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]     |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:141:80
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Ite...
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/standard_tools/ink.rs:141:126
[INFO] [stdout]     |
[INFO] [stdout] 141 | ...a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn actions_for_input<'a>(&'a self, _data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]     |                                                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:57:108
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                                                                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn create_menu_controller(&self, _flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:61:95
[INFO] [stdout]    |
[INFO] [stdout] 61 | ...el<Anim>>, tool_model: &InkModel) -> Box<Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn actions_for_model(&self, flo_model: Arc<FloModel<Anim>>, tool_model: &InkModel) -> Box<dyn Stream<Item=ToolAction<InkData>, Error=()>+Send> {
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:79:79
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Itera...
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<dyn 'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:79:125
[INFO] [stdout]    |
[INFO] [stdout] 79 | ...'a+Iterator<Item=ToolInput<InkData>>>) -> Box<'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn actions_for_input<'a>(&'a self, data: Option<Arc<InkData>>, input: Box<'a+Iterator<Item=ToolInput<InkData>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<InkData>>> {
[INFO] [stdout]    |                                                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:73:148
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...: Binding<(PaintDevice, i32)>, tool_sets: Binding<Vec<Arc<ToolSet<Anim>>>>) -> BindRef<Option<Arc<FloTool<Anim>>>> {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn effective_tool(selected_tool: Binding<Option<Arc<FloTool<Anim>>>>, current_pointer: Binding<(PaintDevice, i32)>, tool_sets: Binding<Vec<Arc<dyn ToolSet<Anim>>>>) -> BindRef<Option<Arc<FloTool<Anim>>>> {
[INFO] [stdout]    |                                                                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:40:76
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_layer_with_id<'a>(&'a self, layer_id: u64) -> Option<Reader<'a, Layer>> {
[INFO] [stdout]    |                                                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_layer_with_id<'a>(&'a self, layer_id: u64) -> Option<Reader<'a, dyn Layer>> {
[INFO] [stdout]    |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:47:44
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_log<'a>(&'a self) -> Reader<'a, EditLog<AnimationEdit>> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn get_log<'a>(&'a self) -> Reader<'a, dyn EditLog<AnimationEdit>> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn edit<'a>(&'a self) -> Editor<'a, PendingEditLog<AnimationEdit>> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn edit<'a>(&'a self) -> Editor<'a, dyn PendingEditLog<AnimationEdit>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/model/animation.rs:102:62
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn edit_layer<'a>(&'a self, layer_id: u64) -> Editor<'a, PendingEditLog<LayerEdit>> {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn edit_layer<'a>(&'a self, layer_id: u64) -> Editor<'a, dyn PendingEditLog<LayerEdit>> {
[INFO] [stdout]     |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/editor/mod.rs:154:57
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:201:80
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...   fn actions_for_input<'a>(&'a self, _data: Option<Arc<i32>>, input: Box<'a+Iterator<Item=ToolInput<i32>>>) -> Box<'a+Iterator<...
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 201 |         fn actions_for_input<'a>(&'a self, _data: Option<Arc<i32>>, input: Box<dyn 'a+Iterator<Item=ToolInput<i32>>>) -> Box<'a+Iterator<Item=ToolAction<i32>>> {
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:201:122
[INFO] [stdout]     |
[INFO] [stdout] 201 | ... Box<'a+Iterator<Item=ToolInput<i32>>>) -> Box<'a+Iterator<Item=ToolAction<i32>>> {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 201 |         fn actions_for_input<'a>(&'a self, _data: Option<Arc<i32>>, input: Box<'a+Iterator<Item=ToolInput<i32>>>) -> Box<dyn 'a+Iterator<Item=ToolAction<i32>>> {
[INFO] [stdout]     |                                                                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/mod.rs:50:60
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut subcontrollers: HashMap<SubController, Arc<Controller>> = HashMap::new();
[INFO] [stdout]    |                                                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut subcontrollers: HashMap<SubController, Arc<dyn Controller>> = HashMap::new();
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/ink.rs:317:43
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/ink.rs:321:57
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/menu/eraser.rs:227:43
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/color/color_picker_controller.rs:49:57
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<Controller>> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_subcontroller(&self, id: &str) -> Option<Arc<dyn Controller>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/color/hsluv_picker_controller.rs:251:43
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn get_viewmodel(&self) -> Option<Arc<ViewModel>> {
[INFO] [stdout]     |                                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     fn get_viewmodel(&self) -> Option<Arc<dyn ViewModel>> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/color/hsluv_picker_controller.rs:255:58
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn get_subcontroller(&self, _id: &str) -> Option<Arc<Controller>> { None }
[INFO] [stdout]     |                                                          ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn get_subcontroller(&self, _id: &str) -> Option<Arc<dyn Controller>> { None }
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:224:44
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn draw_background(&mut self, gc: &mut GraphicsPrimitives, (width, height): (f64, f64)) {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn draw_background(&mut self, gc: &mut dyn GraphicsPrimitives, (width, height): (f64, f64)) {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:356:47
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn annotate_layer<DrawFn: FnOnce(&mut GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, dra...
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn annotate_layer<DrawFn: FnOnce(&mut dyn GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, draw_annotations: DrawFn) {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/animation_canvas/canvas_renderer.rs:400:48
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn commit_to_layer<DrawFn: FnOnce(&mut GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, co...
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 400 |     pub fn commit_to_layer<DrawFn: FnOnce(&mut dyn GraphicsPrimitives) -> ()+Send>(&mut self, canvas: &BindingCanvas, layer_id: u64, commit_drawing: DrawFn) {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/layer.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new<'a>(layer: &Reader<'a, Layer>) -> LayerModel {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new<'a>(layer: &Reader<'a, dyn Layer>) -> LayerModel {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:153:43
[INFO] [stdout]     |
[INFO] [stdout] 153 |             .map(move |tool_model| -> Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 |             .map(move |tool_model| -> Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:83:19
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let ink: &Tool<Anim, ToolData=InkData, Model=InkModel> = &self.ink;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let ink: &dyn Tool<Anim, ToolData=InkData, Model=InkModel> = &self.ink;
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/editor/mod.rs:50:60
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut subcontrollers: HashMap<SubController, Arc<Controller>> = HashMap::new();
[INFO] [stdout]    |                                                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut subcontrollers: HashMap<SubController, Arc<dyn Controller>> = HashMap::new();
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tools/generic_tool.rs:153:43
[INFO] [stdout]     |
[INFO] [stdout] 153 |             .map(move |tool_model| -> Box<Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 |             .map(move |tool_model| -> Box<dyn Stream<Item=ToolAction<GenericToolData>, Error=()>+Send> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let default_tool_sets: Vec<Arc<ToolSet<Anim>>> = vec![
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let default_tool_sets: Vec<Arc<dyn ToolSet<Anim>>> = vec![
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:95:27
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let edit_log: Box<'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let edit_log: Box<dyn 'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/model/animation.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let edit_log: Box<'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let edit_log: Box<dyn 'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/standard_tools/eraser.rs:83:19
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let ink: &Tool<Anim, ToolData=InkData, Model=InkModel> = &self.ink;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let ink: &dyn Tool<Anim, ToolData=InkData, Model=InkModel> = &self.ink;
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tools.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let default_tool_sets: Vec<Arc<ToolSet<Anim>>> = vec![
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let default_tool_sets: Vec<Arc<dyn ToolSet<Anim>>> = vec![
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/animation.rs:95:27
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let edit_log: Box<'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let edit_log: Box<dyn 'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/model/animation.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let edit_log: Box<'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let edit_log: Box<dyn 'a+PendingEditLog<_>> = Box::new(model_edit);
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/standard_tools/eraser.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut model = InkModel::new();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/frame.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     Entry::Vacant(mut vacant) => {
[INFO] [stdout]    |                                   ----^^^^^^
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0659`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `flo` (lib) due to 1 previous error; 82 warnings emitted
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/standard_tools/eraser.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut model = InkModel::new();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/frame.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     Entry::Vacant(mut vacant) => {
[INFO] [stdout]    |                                   ----^^^^^^
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0659`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `flo` (lib test) due to 1 previous error; 85 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641", kill_on_drop: false }`
[INFO] [stdout] 6346388a93046e2eaaecf018f079a82bb89aec70746204b6855844998b1d0641
